/*
 * Cangrejo.h
 *
 *  Created on: 01/10/2013
 *      Author: ezequiel
 */
#include "../Dibujable.h"
#include "CuerpoCangrejo.h"
#include "../Camara.h"
#include "Pierna.h"
#include "Brazo.h"
#include "Ojo.h"
#include "../Circunferencia.h"
#include "../Recta.h"
#define CANT_PIERNAS 6
#ifndef CANGREJO_H_
#define CANGREJO_H_
using namespace std;
class Cangrejo : public Dibujable{
public:
	Cangrejo(glm::vec3 posicion, glm::vec3 tamano, glm::vec3 direccion, float angulo);
	virtual ~Cangrejo();
	 void render(GLuint handle, glm::mat4* matModelo);
	 void render(GLuint handle);
	 void moverPiernas();

	void setCamara(Camara* camara) ;
	void moverAlaDerecha();
	void moverAlaIzquierda();
	void setearPasoInicial(float);
	void setFixtureId(int, int piernas,int ojos, int normalID);
	void setCam(Camara* cam , glm::mat4 pr);
	void setHandle2(GLuint handle) ;

	void setHandleOjos(int handleOjos) {
		this->handleOjos = handleOjos;
	}

private:
	int handleOjos;
	int handle2;
	Recta* curva;
	float anguloCangrejo;
	 void moverPiernasIzquierdas();
	 CuerpoCangrejo* cuerpo;
	 Pierna** piernas;
	 float apartamientoPierna[CANT_PIERNAS ];
	 float apartamientoPiernasRespectoCuerpo[CANT_PIERNAS ];
	 glm::vec3 direccionAngularPierna[CANT_PIERNAS];
	 glm::vec3 traslacionPiernaRespectoCuerpo[CANT_PIERNAS ];
	 Brazo* brazo1;
	 Brazo* brazo2;
	 Ojo* ojo1;
	 Ojo* ojo2;
	 //faltan 2 piernas mas
	 Camara* camara;
	 glm::vec3 posicionCangrejo;
	 glm::vec3 tamanoCangrejo;
	 glm::vec3 direccionCangrejo;
	 void changeObjectColor(GLuint handle, float r, float g, float b);	//TODO este changeObjectColor no tiene qe tar
};

#endif /* CANGREJO_H_ */
